package com.jinly.ryder.deploy.service;

import com.jinly.ryder.deploy.service.model.DeployRecord;
import com.jinly.ryder.flow.service.model.FlowApply;
import com.jinly.ryder.flow.service.model.FlowAudit;
import com.jinly.ryder.manage.service.model.AppInstance;
import com.jinly.ryder.manage.service.model.DeployGroup;
import com.jinly.ryder.manage.service.model.DeployStatus;

public interface DeployService {

    void deployApply(FlowApply flowApply, FlowAudit flowAudit);

    /**
     * 根据分组部署
     */
    void deployByGroup(DeployGroup deployGroup, Long operator);

    /**
     * 根据实例部署
     */
    void deployByInstance(AppInstance appInstance, Long operator);

    void restartByInstance(AppInstance appInstance, Long operator);

    void updateInstanceDeployStatus(Integer instanceId, DeployStatus deployStatus);

    void updateInstanceDeployStatus(DeployRecord deployRecord);
}
